import { defineStore } from 'pinia';

export const useUserStore = defineStore('user', {
    state: () => ({
        // 登录状态
        isLogin: false,
        // 用户基本信息
        userInfo: {
            id: '',           // 用户ID
            email: '',        // 邮箱
            phone: '',        // 电话
            password: '',     // 密码
            gender: null,     // 性别
            name: null        // 姓名
        },
        // token信息
        token: ''
    }),
    
    actions: {
        // 设置登录状态和用户信息
        setLoginInfo(userInfo, token) {
            this.isLogin = true;
            this.userInfo = userInfo;
            this.token = token;
        },
        
        // 更新用户信息
        updateUserInfo(userInfo) {
            this.userInfo = {
                ...this.userInfo,
                ...userInfo
            };
        },
        
        // 清除登录状态（登出时使用）
        clearLoginInfo() {
            this.isLogin = false;
            this.userInfo = {
                id: '',
                email: '',
                phone: '',
                password: '',
                gender: null,
                name: null
            };
            this.token = '';
        }
    },
    
    getters: {
        // 获取登录状态
        getLoginStatus: (state) => state.isLogin,
        
        // 获取用户信息
        getUserInfo: (state) => state.userInfo,
        
    },
    
    persist: {
        enabled: true,
        strategies: [
            {
                key: 'hospital_user',
                storage: localStorage,
                paths: ['isLogin', 'userInfo', 'token']
            }
        ]
    }
});